#pragma once
#include <vector>
#include "detect_structure.h"
#include "signal_processor.h"
// MTI/MTD处理
class MTI_MTDProcessor
{
private:
    RadarParameters params;
    std::vector<Pulse> delay_line;
    int delay_line_index;

public:
    MTI_MTDProcessor(const RadarParameters &radar_params)
        : params(radar_params), delay_line_index(0)
    {
        // 初始化延迟线
        delay_line.resize(3, Pulse(params.num_samples, Complex(0, 0)));
    }

    // 三脉冲对消器 (MTI)
    std::vector<Pulse> processMTI(const std::vector<Pulse> &pulses);

    // 脉冲多普勒处理 (MTD)
    PulseDopplerMatrix processMTD(const std::vector<Pulse> &pulses);

    // 二维FFT处理 (距离-多普勒)
    PulseDopplerMatrix processRangeDoppler(const std::vector<Pulse> &pulses);
};